home *** CD-ROM | disk | FTP | other *** search
-
-
- Many modems, that are available for the Commodore 64 and 128, can be
- classified as "dumb" modems. Unlike the Hayes standard "smart" modems, the
- features of a dumb modem are almost exclusively software controlled.
-
- The major example of a software controlled function, is auto-dialing.
- Dialing is by no means automatic. It is a semi-complicated
- toggling of the modem on and offline. Despite this sounding rather
- undependable, it is in fact the method that electronic phones use, when
- they pulse dial.
-
- The following is intended as a guide for terminal programmers who wish
- to write their own pulse dialing routines. The first part outlines the
- dialing process. The second describes how the following process can
- can be applied to the popular modems.
-
- The dialing process consists of the following steps:
-
- 1: Put the modem online. A delay is now necessary, to give the telephone
- exchange sufficient time to supply a dial tone. 1.5 to 2 seconds is
- usually enough, but this might be different for your particular
- exchange.
-
- 2: Form a PULSE COUNTER using next digit of the phone number. Digits 1-9
- are converted to the representative value 1-9 in the counter. Zero
- are represented by the representative value 1-9 in the counter. Zero
- is special. As zero doesn't convey information, the digit zero
- is converted into 10 pulses (counter = 10).
-
- 3: The pulse loop commences. The toggling of the modem on/offline is
- timed as follows:
-
- a) Put modem offline for 60 milliseconds. Modem back online.
- b) Delay for 40 milliseconds.
- c) Decrement pulse counter. If pulse counter is not zero go
- back to step a).
-
- 4: An inter-digit delay for 700 milliseconds. If all digits of
- phone number have not been dialed, go back to step 2.
-
- 5: Wait for carrier.
-
- The above delays can be considered the maximum needed for dependable
- dialing. I have found that 40/30/300 to be as dependable. Your range will
- vary with your exchange's equipment.
-
- An example delay routine in BASIC:
-
- 10 t=value: rem value is milleseconds/10 eg 700 -> value = 70
- 20 t=t-1: if t<>0 then 10
-
- I've written an ML version, but, if your doing it in ML, then that's a
- nice exercise (grin).
-
-
- PART 2:
- -------
-
- It seems like every modem manufacturer takes great pride in making
- their modem operate differently from their competitor's. Fortunately,
- through the fog, there is light. The dialing mode of nearly all 64/128
- dumb modems can be classified into two categories:
-
- 1) 1650 compatible. eg Pocket modem, 1064, 64 Modem
-
- 2) 1660 compatible. eg Mitey Mo, HES-II
-
-
- The computer communicates with the modem via the user port, which is
- hooked to the NMI generating CIA chip. The location that concerns
- the programmer, is dec 56577 ($DD01) which is Data Port B of this CIA.
-
- The Data Direction Register at location 56579 ($DD03) controls the
- direction (in or out of the computer) of the lines represented in 56577.
-
- POKE56579,38 This is a universal POKE. In addition to the hook line, this
- sets as outputs the lines Request to Send, and
- Data Terminal Ready. These are used by modems for
- various purposes, but the POKE is common. The other 5
- lines are inputs.
-
-
- Bit 5 of 56577, and its corresponding line, are used by the
- Commodore compatible dumb modems, for controlling the hook. By toggling
- this bit, the modem can be put on and offline, or, if you prefer,
- off and on hook.
-
-
- The on/offline POKEs in BASIC are:
-
- Modem Online Offline
-
- 1650 compatible POKE56577,PEEK(56577)OR32 POKE56577,PEEK(56577)AND223
- 1660 compatible POKE56577,PEEK(56577)AND223 POKE56577,PEEK(56577)OR32
-
- As you can see, the logic for the 1650 and 1660 are exactly opposite. The
- reason the change was made (the 1660 being a later design), was probably
- because the 64 defaults to bit 5 on, and thus a 1650 defaults online,
- even when not in use.
-
-
- This should give you information to get started. Please feel free to
- leave me any questions you have.
-
- GOOD LUCK!
-
- Sysop Gary Farmaner. Compuserve
-